using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ObviousCode.Stately;

namespace ObviousCode.Stately.Compiler.Parser
{
	public partial class Parser
	{		   
		public void Start(Action<CompilerContext> callback)
		{
			CompilerContext context = new CompilerContext();

			context.Callback = callback;

			//_stately.Start(Step.SetStartingState, context);


			throw new NotImplementedException();
		}

		private ITransitionRequest HandleSetStartingState(CompilerContext context)
		{
			//return _stately.T(Step.PopState1, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePopState1(CompilerContext context)
		{
			//return _stately.T(Step.PopTransition, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePopTransition(CompilerContext context)
		{
			//return _stately.T(Step.PopState2, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePopState2(CompilerContext context)
		{
			//return _stately.T(Step.CreateTransition, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandleCreateTransition(CompilerContext context)
		{
			//return _stately.T(Step.PeekNextStep, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePeekNextStep(CompilerContext context)
		{
			//return _stately.T(Step.SetState1AsState2, context);
			//return _stately.T(Step.PopState2, context);
			//return _stately.T(Step.Break, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandleSetState1AsState2(CompilerContext context)
		{
			//return _stately.T(Step.PopTransition, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePopTransition(CompilerContext context)
		{
			//return _stately.T(Step.PopState2, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePopState2(CompilerContext context)
		{
			//return _stately.T(Step.CreateTransition, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandleBreak(CompilerContext context)
		{
			//return _stately.T(Step.PopState1, context);
			//return CompleteRequest.Instance

			throw new NotImplementedException();

		}

		private ITransitionRequest HandlePopState1(CompilerContext context)
		{
			//return _stately.T(Step.PopTransition, context);

			throw new NotImplementedException();

		}

		private ITransitionRequest HandleFail(CompilerContext context)
		{

			throw new NotImplementedException();

		}


	}
}

